/*
 *
 */
package accesoDatos;


import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;


public class DAODesdeGUI 
{
    private String sqlInstruction;
    private FachadaBD fachada;
    
    public DAODesdeGUI()
    {
        
    }
    
    public String[] accederaAreasDeinteres()
    {
        sqlInstruction="SELECT nombre_area FROM area_conocimiento;";
        fachada= new FachadaBD(); 
        Vector<String> retorno=new Vector();
        
        
         try
             {
                 Connection conn= fachada.conectar();
                 Statement sentencia = conn.createStatement();
                 ResultSet tabla = sentencia.executeQuery(sqlInstruction);
                 ResultSetMetaData metaDatos=tabla.getMetaData();
                 int numeroDeColumnas=metaDatos.getColumnCount();
                 StringBuffer fila=new StringBuffer();
                 while(tabla.next())
                 {
                     fila=new StringBuffer();
                     for(int i=1;i<=numeroDeColumnas;i++)
                         fila.append(tabla.getObject(i));
                     retorno.add(fila.toString());
                 }       
                         
             }catch(Exception ex){
                 Logger.getLogger(DAODesdeGUI.class.getName()).log(Level.SEVERE, null, ex);
             }
             String[] retorno1=new String[retorno.size()];
             for(int i=0;i<retorno.size();i++)
                 retorno1[i]=retorno.get(i);
             for(int i=0;i<retorno1.length;i++)
                 System.out.println(retorno1[i]);
             return retorno1;
    }
    
    public String[] accederaMaterial()
    {
        sqlInstruction="SELECT DISTINCT formato_material FROM material;";
        fachada= new FachadaBD(); 
        Vector<String> retorno=new Vector();
        
        
         try
             {
                 Connection conn= fachada.conectar();
                 Statement sentencia = conn.createStatement();
                 ResultSet tabla = sentencia.executeQuery(sqlInstruction);
                 ResultSetMetaData metaDatos=tabla.getMetaData();
                 int numeroDeColumnas=metaDatos.getColumnCount();
                 StringBuffer fila=new StringBuffer();
                 while(tabla.next())
                 {
                     fila=new StringBuffer();
                     for(int i=1;i<=numeroDeColumnas;i++)
                         fila.append(tabla.getObject(i));
                     retorno.add(fila.toString());
                 }       
                         
             }catch(Exception ex){
                 Logger.getLogger(DAODesdeGUI.class.getName()).log(Level.SEVERE, null, ex);
             }
             String[] retorno1=new String[retorno.size()];
             for(int i=0;i<retorno.size();i++)
                 retorno1[i]=retorno.get(i);
            
             return retorno1;
    }
    
    public String buscarArea(String nombre)
    {
        sqlInstruction="SELECT codigo_area FROM area_conocimiento WHERE nombre_area='"+nombre+"';";
        fachada= new FachadaBD(); 
        String retorno="";
        
        try
             {
                 Connection conn= fachada.conectar();
                 Statement sentencia = conn.createStatement();
                 ResultSet tabla = sentencia.executeQuery(sqlInstruction);
                 ResultSetMetaData metaDatos=tabla.getMetaData();
                 int numeroDeColumnas=metaDatos.getColumnCount();
                 StringBuffer fila=new StringBuffer();
                 while(tabla.next())
                 {
                     fila=new StringBuffer();
                     for(int i=1;i<=numeroDeColumnas;i++)
                         retorno=tabla.getObject(i).toString();
                     
                 }       
                         
             }catch(Exception ex){
                 Logger.getLogger(DAODesdeGUI.class.getName()).log(Level.SEVERE, null, ex);
                 
             }
        return retorno;   
        
    }
    
    public static void main(String args[])
     {
         DAODesdeGUI apli=new DAODesdeGUI();
         apli.buscarArea("Algoritmos y complejidad");
         apli.accederaMaterial();
         apli.accederaAreasDeinteres();

     }
                 
             
             
         
    
}
